package com.emmmya.ocs.modules.system.service;
 
 
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.emmmya.ocs.common.base.BaseService;
import com.emmmya.ocs.modules.system.entity.TimedTask;
import org.quartz.SchedulerException;

import java.util.List;

public interface TimedTaskService extends BaseService<TimedTask,String> {
 
	//任务列表
	List<TimedTask> getTimedTask(TimedTask bit);
 
	//更新定时任务库表数据
	boolean updateTimedTask(TimedTask bit);
 
	//增加库表数据
	String addTimedTask(TimedTask bit);
 
	//根据ID删除库表信息
	void delTimedTask(String bitIds);
 
	//根据ID查询任务详情
	TimedTask getByKey(String id);
 
	//启动任务
	void run(TimedTask task) throws SchedulerException;
 
	//初始化任务
	void initSchedule() throws SchedulerException;
 
	//新增服务
	void addJob(String id);
 
	//暂停服务
	void pauseJob(String id);
 
	//恢复服务 如果管理器没有加入过该任务，则新加如并开启。如果加入过，则恢复任务
	void resumeJob(String id);
 
	//删除服务
	void  deleteJob(String id);
 
	//立即执行服务
	void runJobNow(String id);
 
	//更新表达式
	void updateJobCron(TimedTask task);
 
	//所有计划中任务列表
	List<TimedTask> getAllJob();
 
	//正在运行任务列表
	List<TimedTask> getRunningJob();

	/**
	 * 分页查询
	 */
	void getListByPage(IPage<TimedTask> page, Wrapper<TimedTask> wrapper);

}